#! /bin/sh
#
# This file is part of DisOrder.
# Copyright (C) 2004, 2005, 2007, 2009 Richard Kettlewell
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#

### BEGIN INIT INFO
# Provides:          disorder
# Required-Start:    $local_fs $network $named $remote_fs $syslog $time
# Required-Stop:     $local_fs $network $named $remote_fs $syslog $time
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start and stop DisOrder
# Description:       DisOrder is a multi-user software jukebox.
### END INIT INFO

set -e

. /lib/lsb/init-functions

DAEMON=sbindir/disorderd
CLIENT="bindir/disorder --local"

PATH="$PATH:sbindir"

start_debian() {
  printf "Starting DisOrder server: disorderd"
  start-stop-daemon -S -q -x ${DAEMON}
  echo .
}

start_generic() {
  if ${CLIENT} version >/dev/null 2>&1; then
    : already running
  else
    printf "Starting DisOrder server: disorderd"
    ${DAEMON}
    echo .
  fi
}

start() {
  if test -e /sbin/start-stop-daemon; then
    start_debian
  else
    start_generic
  fi
}

stop_debian() {
  printf "Stopping DisOrder server: disorderd"
  start-stop-daemon -K -o -q -x ${DAEMON}
  echo .
}

stop_generic() {
 if ${CLIENT} version >/dev/null 2>&1; then
   printf "Stopping DisOrder server: disorderd"
   ${CLIENT} shutdown
   echo .
 else
   : not running
 fi
}

stop() {
  if test -e /sbin/start-stop-daemon; then
    stop_debian
  else
    stop_generic
  fi
}

reload() {
  printf "Reloading DisOrder server configuration..."
  ${CLIENT} reconfigure
  echo done.
}

restart() {
  stop
  sleep 2
  start
}

case "$1" in
start | stop | reload | restart ) "$1" ;;
force-reload ) reload ;;
* )
  echo "usage: $0 start|stop|restart|reload" 1>&2
  exit 1
esac
